1. Field of the Invention
The present invention relates to control of chemical process machines and, more particularly, to improved techniques for generating instructions to control chemical process machines.
2. Related Art
Various devices have been developed for processing biochemical substances. Such devices, referred to herein generically as “chemical process machines,” have found particular utility in the biotechnology industry for the purpose of facilitating the research, development, and production of pharmaceuticals. Chemical process machines may, for example, be used when a particular drug is being researched in the lab, subsequently when the drug is being tested during a pilot program, and/or when the drug is being produced in large quantities for commercial manufacture and distribution.
Chemical process machines are typically capable of being programmed to perform a wide variety of actions associated with biochemical processing. Such actions often include mechanical actions (such as opening or closing valves), providing information to the machine operator about the current state of the process, obtaining input from the machine operator, and making decisions about which actions to perform next based on the existence of predetermined conditions. Chemical process machines are typically capable of being programmed to perform a particular sequence of such individual actions—referred to herein as “steps”—in a particular order to perform a particular process.
Performing such programming can be tedious, time-consuming, and error-prone. A single process may include hundreds or even thousands of individual steps. Programming a chemical process machine to perform such a process typically involves accurately specifying each of the steps to be performed in the desired order. Failure to program a particular step accurately or to program the desired steps in an appropriate order may cause the process to execute incorrectly or to fail to execute entirely. As a result, it can be difficult to quickly and accurately program a process that includes a large number of steps.
Some user interfaces have been developed to facilitate the practice of programming chemical process machines. Such user interfaces typically allow the programmer to program the desired sequence of steps using textual instructions that are input using a text editor, spreadsheet, or other similar software on a personal computer or workstation. Allowing steps in the process to be input in this way simplifies the task of programming the chemical process machine. Furthermore, the sequence of steps entered by the operator may be saved to a file for subsequent editing or other use.
Such conventional user interfaces for programming chemical process machines, however, have a variety of disadvantages. For example, such user interfaces typically require the end user to manually input each step in the process to be performed by the chemical process machine. This can be difficult and time-consuming, particularly in the case of processes that include hundreds or thousands of steps. Even when a process has been previously programmed and saved, conventional user interfaces typically display to a user who desires to edit one or more steps in the process a listing of all of the steps in the process. When faced with such a listing, the user is responsible for finding and selecting the particular step or steps in the process to be edited, potentially from among thousands of steps. As a result, even identifying the particular steps to be edited in a process can be time-consuming using the user interfaces typically provided for use with conventional chemical process machines.
Furthermore, in a typical process, there are often certain steps, which should not be edited by the user for a variety of reasons. For example, some steps (such as steps related to initialization of the chemical process machine) may be required by the process. As another example, it may be necessary to execute certain sequences of steps within the process in a particular order. The conventional user interfaces described above for programming chemical process machines, however, typically allow all steps in a process to be edited by the user. As a result, it is typically possible for the user to inadvertently cause a process to malfunction by either deleting necessary steps from the process or by incorrectly modifying steps in the process.
Some process machine programming user interfaces allow sequences of steps to be grouped together into modules that are referred to herein as “operations.” Operations may further be combined into higher-level modules that are referred to herein as “recipe procedures” or simply as “procedures.” Typically, each operation and each procedure is stored in a separate file in a computer file system. Each procedure file typically contains references to the files containing the operations that comprise the procedure. As a result, modifying a step in a particular operation file effectively results in modifying the step in every procedure that incorporates the operation. To avoid this problem and modify a step in only a single procedure, it is typically necessary to make a copy of the operation file containing the step and to then modify the step in the copy of the operation file. The copied operation file must typically be saved using a different filename than the original operation file. As a result, modifying individual steps in a variety of procedures typically leads to the undesirable proliferation of large numbers of similar, but not identical, operation files. It can be difficult to manage this large number of operation files and to subsequently identify the differences among them, particularly given the large numbers of steps each of them may contain and the small number of differences between different operation files.
What is needed, therefore, are simplified and more efficient techniques for programming chemical process machines.